图像处理与分析 实验一

171次阅读
没有评论

共计 1132 个字符,预计需要花费 3 分钟才能阅读完成。

实验内容:打开图像,显示图像,灰度化,二值化,存储图像,缩放图像,观察其分辨率,降低灰度分辨率两种模式,观察图像变化

打开图像

import cv2 as cv

img = cv.imread('LenaRGB.bmp')
img = cv.cvtColor(img, cv.COLOR_BGR2RGB)

显示图像

import matplotlib.pyplot as plt

plt.imshow(img)

图像处理与分析 实验一

灰度化

gray_img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
# show_all(img, gray_img)
plt.imshow(gray_img, cmap='gray')

图像处理与分析 实验一

二值化

_, binary_img = cv.threshold(gray_img, 127, 255, cv.THRESH_BINARY)
plt.imshow(binary_img, cmap='gray')

图像处理与分析 实验一

存储图像

cv.imwrite('Lena_binary.png', binary_img)
True

缩放图像 观察分辨率

plt.imshow(img)
img.shape
(512, 512, 3)

图像处理与分析 实验一

row, col, _ = img.shape
resize_img = cv.resize(img, (int(row / 2), int(col / 2)))
plt.imshow(resize_img)
resize_img.shape
(256, 256, 3)

图像处理与分析 实验一

降低灰度分辨率

def reduce_intensity_levels(img, level):
    img = cv.copyTo(img, None)
    for x in range(img.shape[0]):
        for y in range(img.shape[1]):
            si = int(img[x, y])
            ni = int(level * si / 255 + 0.5) * (255 / level)
            img[x, y] = ni
    return img

8 级

gray_img_level8 = reduce_intensity_levels(gray_img, 7)
plt.imshow(gray_img_level8, cmap='gray')

图像处理与分析 实验一

4 级

gray_img_level4 = reduce_intensity_levels(gray_img, 3)
plt.imshow(gray_img_level4, cmap='gray')

图像处理与分析 实验一

2 级

gray_img_level2 = reduce_intensity_levels(gray_img, 1)
plt.imshow(gray_img_level2, cmap='gray')

图像处理与分析 实验一

正文完
 1
icvuln
版权声明:本站原创文章,由 icvuln 于2024-09-23发表,共计1132字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)